package com.gosophia.conferenceManagement.common.ws;

import java.util.List;

import com.gosophia.commons.exception.BusinessException;
import com.gosophia.conferenceManagement.common.dto.ConferenceJobHandleDTO;
import com.gosophia.conferenceManagement.common.dto.DocumentDTO;
import com.gosophia.conferenceManagement.starting.dto.ConferenceAppDetailDTO;
import com.gosophia.conferenceManagement.starting.dto.ConferenceStartingDTO;
import com.gosophia.taskManagement.dto.JobDTO;

/**
 * 功能：会议查询服务webService
 * 
 * @author wangxinbing
 * @since 2011-3-30 Copyright (c) 2010 Gosophia corporation All Rights Reserved
 */
public interface ConferenceQueryWebService {
	/**
	 * 根据文档id查询
	 * 
	 * @param docId
	 *            不能为null
	 * @return 返回查询到的文档
	 */
	public DocumentDTO findDocumentByDocumentId(Long docId);

	/**
	 * T 查找会议的大任务及会议的申请信息（后续模块调用使用）
	 * 
	 * @param jobId
	 *            不能为null
	 * @return ConferenceStartingDTO 返回会议的大任务及会议的申请信息 无结果返回null
	 */
	public ConferenceStartingDTO findConferenceMasterByJobId(Long jobId)
			throws BusinessException;
/**
 * 查找会议的大任务及会议的申请信息 
 * @param missionId  不能为null
 * @return ConferenceStartingDTO 返回会议的大任务及会议的申请信息 无结果返回null
 * @throws BusinessException 
 */
	public ConferenceStartingDTO findConferenceInfoByMissionId(Long missionId) throws BusinessException;
	/**
	 * 查找会议申请审批的处理历史
	 * 
	 * @param jobId
	 *            不能为null
	 * @return 会议申请审批的处理历史 没有结果返回null
	 */
	public List<JobDTO> findHandleHistory(Long jobId) throws BusinessException;

	/**
	 * 查找审批详细
	 * 
	 * @param jobId
	 *            不能为null
	 * @return 审批详细 没有结果返回null
	 */
	public ConferenceJobHandleDTO findConferenceJobHandleDTOByJobId(Long jobId)
			throws BusinessException;

	/**
	 * 根据JobId查找上一个jobDTO
	 * @param jobId 当前job的编号 不能为null
	 * @return 根据JobId查找到的上一个jobDTO
	 * @throws BusinessException 查找失败时
	 */
	public JobDTO findPreDtoByJobId(Long jobId) throws BusinessException;	
	/**
	 * 根据missionId 和 jobType 查找操作历史list
	 * @param missionId 
	 * @param jobType
	 * @return
	 */
	public List<ConferenceJobHandleDTO> findHandleRecords(Long missionId,String jobType);

    /**
     * @param jobId
     * @return
     * @throws BusinessException 
     */
    public ConferenceAppDetailDTO loadConfAppDetail(Long jobId) throws BusinessException;
	
}
